using System;
using System.Collections;

namespace ProjectManagement.DataAccess
{
	
	public abstract class Project
	{
	
		public System.String Name
		{
			get { return this.m_Name; }
			set { this.m_Name = value; }
		}

		public System.Decimal Budget
		{
			get { return this.m_Budget; }
			set { this.m_Budget = value; }
		}

		public ProjectManagement.DataAccess.Manager Manager
		{
			get { return this.m_Manager; }
			set { this.m_Manager = value; }
		}

		public IList/*ProjectManagement.DataAccess.Employee*/ Members
		{
			get { return this.m_Members; }
		}


		protected void OnCreate()
		{
		}
		
//		protected void OnMaterialize()
//		{
//		}
		
//		protected void OnValidate()
//		{
//		}
		
		protected abstract System.String m_Name { get; set; }

		protected abstract System.Decimal m_Budget { get; set; }

		protected abstract ProjectManagement.DataAccess.Manager m_Manager { get; set; }

		protected abstract IList/*ProjectManagement.DataAccess.Employee*/ m_Members { get; }
	}
}
